home *** CD-ROM | disk | FTP | other *** search
/ Speccy ClassiX 1998 / Speccy ClassiX 98.iso / amiga_system / the_aminet / dev / misc / calculus37_3.lha / calculus / Source / sprintf.a < prev    next >
Text File  |  1995-09-05  |  1KB  |  46 lines

  1. ;
  2. ; Simple version of the C "sprintf" function.  Assumes C-style
  3. ; stack-based function conventions.
  4. ;
  5. ;   long eyecount;
  6. ;   eyecount=2;
  7. ;   sprintf(string,"%s have %ld eyes.","Fish",eyecount);
  8. ;
  9. ; would produce "Fish have 2 eyes." in the string buffer.
  10. ;
  11.     xdef _SPrintf
  12.     xdef _VSPrintf
  13.     xref _AbsExecBase
  14.     xref _LVORawDoFmt
  15.  
  16.     section SprintfCode,code
  17.  
  18. _SPrintf       ; ( ostring, format, {values} )
  19.        movem.l a2/a3/a6,-(sp)
  20.  
  21.        move.l  16(sp),a3       ;Get the output string pointer
  22.        move.l  20(sp),a0       ;Get the FormatString pointer
  23.        lea.l   24(sp),a1       ;Get the pointer to the DataStream
  24. SPrintfEntry
  25.        lea.l   stuffChar,a2
  26. ;           lea.l   stuffChar(pc),a2
  27.        move.l  _AbsExecBase,a6
  28.        jsr     _LVORawDoFmt(a6)
  29.  
  30.        movem.l (sp)+,a2/a3/a6
  31.        rts
  32.  
  33. _VSPrintf      ; ( ostring, format, pointer to values )
  34.        movem.l a2/a3/a6,-(sp)
  35.  
  36.        move.l  16(sp),a3       ;Get the output string pointer
  37.        move.l  20(sp),a0       ;Get the FormatString pointer
  38.        move.l  24(sp),a1       ;Get the address from the first element
  39.        bra     SPrintfEntry
  40. ;           bra     SPrintfEntry(pc)
  41.  
  42. ;------ PutChProc function used by RawDoFmt -----------
  43. stuffChar  move.b  d0,(a3)+        ;Put data to output string
  44.        rts
  45.  
  46.